home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / programming / triton / developer / gcc / os-include / inline / triton.h
Encoding:
C/C++ Source or Header  |  1995-08-25  |  9.0 KB  |  315 lines

  1. #ifndef _INLINE_TRITON_H
  2. #define _INLINE_TRITON_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL
  11. #define BASE_EXT_DECL0 extern struct Library * TritonBase;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME TritonBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. extern __inline ULONG 
  24. TR_AutoRequest (BASE_PAR_DECL struct TR_App *app,struct TR_Project *lockproject,struct TagItem *wintags)
  25. {
  26.   BASE_EXT_DECL
  27.   register ULONG  _res  __asm("d0");
  28.   register struct Library *a6 __asm("a6") = BASE_NAME;
  29.   register struct TR_App *a1 __asm("a1") = app;
  30.   register struct TR_Project *a0 __asm("a0") = lockproject;
  31.   register struct TagItem *a2 __asm("a2") = wintags;
  32.   __asm __volatile ("jsr a6@(-0x54)"
  33.   : "=r" (_res)
  34.   : "r" (a6), "r" (a1), "r" (a0), "r" (a2)
  35.   : "a0","a1","a2","d0","d1", "memory");
  36.   return _res;
  37. }
  38. extern __inline VOID 
  39. TR_CloseProject (BASE_PAR_DECL struct TR_Project *project)
  40. {
  41.   BASE_EXT_DECL
  42.   register struct Library *a6 __asm("a6") = BASE_NAME;
  43.   register struct TR_Project *a0 __asm("a0") = project;
  44.   __asm __volatile ("jsr a6@(-0x24)"
  45.   : /* no output */
  46.   : "r" (a6), "r" (a0)
  47.   : "a0","a1","d0","d1", "memory");
  48. }
  49. extern __inline VOID 
  50. TR_CloseWindowSafely (BASE_PAR_DECL struct Window *window)
  51. {
  52.   BASE_EXT_DECL
  53.   register struct Library *a6 __asm("a6") = BASE_NAME;
  54.   register struct Window *a0 __asm("a0") = window;
  55.   __asm __volatile ("jsr a6@(-0x7e)"
  56.   : /* no output */
  57.   : "r" (a6), "r" (a0)
  58.   : "a0","a1","d0","d1", "memory");
  59. }
  60. extern __inline struct TR_App * 
  61. TR_CreateApp (BASE_PAR_DECL struct TagItem *apptags)
  62. {
  63.   BASE_EXT_DECL
  64.   register struct TR_App *  _res  __asm("d0");
  65.   register struct Library *a6 __asm("a6") = BASE_NAME;
  66.   register struct TagItem *a1 __asm("a1") = apptags;
  67.   __asm __volatile ("jsr a6@(-0x60)"
  68.   : "=r" (_res)
  69.   : "r" (a6), "r" (a1)
  70.   : "a0","a1","d0","d1", "memory");
  71.   return _res;
  72. }
  73. extern __inline VOID 
  74. TR_DeleteApp (BASE_PAR_DECL struct TR_App *app)
  75. {
  76.   BASE_EXT_DECL
  77.   register struct Library *a6 __asm("a6") = BASE_NAME;
  78.   register struct TR_App *a1 __asm("a1") = app;
  79.   __asm __volatile ("jsr a6@(-0x66)"
  80.   : /* no output */
  81.   : "r" (a6), "r" (a1)
  82.   : "a0","a1","d0","d1", "memory");
  83. }
  84. extern __inline ULONG 
  85. TR_EasyRequest (BASE_PAR_DECL struct TR_App *app,STRPTR bodyfmt,STRPTR gadfmt,struct TagItem *taglist)
  86. {
  87.   BASE_EXT_DECL
  88.   register ULONG  _res  __asm("d0");
  89.   register struct Library *a6 __asm("a6") = BASE_NAME;
  90.   register struct TR_App *a1 __asm("a1") = app;
  91.   register STRPTR a2 __asm("a2") = bodyfmt;
  92.   register STRPTR a3 __asm("a3") = gadfmt;
  93.   register struct TagItem *a0 __asm("a0") = taglist;
  94.   __asm __volatile ("jsr a6@(-0x5a)"
  95.   : "=r" (_res)
  96.   : "r" (a6), "r" (a1), "r" (a2), "r" (a3), "r" (a0)
  97.   : "a0","a1","a2","a3","d0","d1", "memory");
  98.   return _res;
  99. }
  100. extern __inline LONG 
  101. TR_FirstOccurance (BASE_PAR_DECL UBYTE ch,STRPTR str)
  102. {
  103.   BASE_EXT_DECL
  104.   register LONG  _res  __asm("d0");
  105.   register struct Library *a6 __asm("a6") = BASE_NAME;
  106.   register UBYTE d0 __asm("d0") = ch;
  107.   register STRPTR a0 __asm("a0") = str;
  108.   __asm __volatile ("jsr a6@(-0x2a)"
  109.   : "=r" (_res)
  110.   : "r" (a6), "r" (d0), "r" (a0)
  111.   : "a0","a1","d0","d1", "memory");
  112.   return _res;
  113. }
  114. extern __inline ULONG 
  115. TR_GetAttribute (BASE_PAR_DECL struct TR_Project *project,ULONG ID,ULONG attribute)
  116. {
  117.   BASE_EXT_DECL
  118.   register ULONG  _res  __asm("d0");
  119.   register struct Library *a6 __asm("a6") = BASE_NAME;
  120.   register struct TR_Project *a0 __asm("a0") = project;
  121.   register ULONG d0 __asm("d0") = ID;
  122.   register ULONG d1 __asm("d1") = attribute;
  123.   __asm __volatile ("jsr a6@(-0x42)"
  124.   : "=r" (_res)
  125.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  126.   : "a0","a1","d0","d1", "memory");
  127.   return _res;
  128. }
  129. extern __inline STRPTR 
  130. TR_GetErrorString (BASE_PAR_DECL UWORD num)
  131. {
  132.   BASE_EXT_DECL
  133.   register STRPTR  _res  __asm("d0");
  134.   register struct Library *a6 __asm("a6") = BASE_NAME;
  135.   register UWORD d0 __asm("d0") = num;
  136.   __asm __volatile ("jsr a6@(-0x36)"
  137.   : "=r" (_res)
  138.   : "r" (a6), "r" (d0)
  139.   : "a0","a1","d0","d1", "memory");
  140.   return _res;
  141. }
  142. extern __inline UWORD 
  143. TR_GetLastError (BASE_PAR_DECL struct TR_App *app)
  144. {
  145.   BASE_EXT_DECL
  146.   register UWORD  _res  __asm("d0");
  147.   register struct Library *a6 __asm("a6") = BASE_NAME;
  148.   register struct TR_App *a1 __asm("a1") = app;
  149.   __asm __volatile ("jsr a6@(-0x84)"
  150.   : "=r" (_res)
  151.   : "r" (a6), "r" (a1)
  152.   : "a0","a1","d0","d1", "memory");
  153.   return _res;
  154. }
  155. extern __inline struct TR_Message * 
  156. TR_GetMsg (BASE_PAR_DECL struct TR_App *app)
  157. {
  158.   BASE_EXT_DECL
  159.   register struct TR_Message *  _res  __asm("d0");
  160.   register struct Library *a6 __asm("a6") = BASE_NAME;
  161.   register struct TR_App *a1 __asm("a1") = app;
  162.   __asm __volatile ("jsr a6@(-0x6c)"
  163.   : "=r" (_res)
  164.   : "r" (a6), "r" (a1)
  165.   : "a0","a1","d0","d1", "memory");
  166.   return _res;
  167. }
  168. extern __inline VOID 
  169. TR_LockProject (BASE_PAR_DECL struct TR_Project *project)
  170. {
  171.   BASE_EXT_DECL
  172.   register struct Library *a6 __asm("a6") = BASE_NAME;
  173.   register struct TR_Project *a0 __asm("a0") = project;
  174.   __asm __volatile ("jsr a6@(-0x48)"
  175.   : /* no output */
  176.   : "r" (a6), "r" (a0)
  177.   : "a0","a1","d0","d1", "memory");
  178. }
  179. extern __inline struct Screen * 
  180. TR_LockScreen (BASE_PAR_DECL struct TR_Project *project)
  181. {
  182.   BASE_EXT_DECL
  183.   register struct Screen *  _res  __asm("d0");
  184.   register struct Library *a6 __asm("a6") = BASE_NAME;
  185.   register struct TR_Project *a0 __asm("a0") = project;
  186.   __asm __volatile ("jsr a6@(-0x8a)"
  187.   : "=r" (_res)
  188.   : "r" (a6), "r" (a0)
  189.   : "a0","a1","d0","d1", "memory");
  190.   return _res;
  191. }
  192. extern __inline LONG 
  193. TR_NumOccurances (BASE_PAR_DECL UBYTE ch,STRPTR str)
  194. {
  195.   BASE_EXT_DECL
  196.   register LONG  _res  __asm("d0");
  197.   register struct Library *a6 __asm("a6") = BASE_NAME;
  198.   register UBYTE d0 __asm("d0") = ch;
  199.   register STRPTR a0 __asm("a0") = str;
  200.   __asm __volatile ("jsr a6@(-0x30)"
  201.   : "=r" (_res)
  202.   : "r" (a6), "r" (d0), "r" (a0)
  203.   : "a0","a1","d0","d1", "memory");
  204.   return _res;
  205. }
  206. extern __inline struct Window * 
  207. TR_ObtainWindow (BASE_PAR_DECL struct TR_Project *project)
  208. {
  209.   BASE_EXT_DECL
  210.   register struct Window *  _res  __asm("d0");
  211.   register struct Library *a6 __asm("a6") = BASE_NAME;
  212.   register struct TR_Project *a0 __asm("a0") = project;
  213.   __asm __volatile ("jsr a6@(-0x96)"
  214.   : "=r" (_res)
  215.   : "r" (a6), "r" (a0)
  216.   : "a0","a1","d0","d1", "memory");
  217.   return _res;
  218. }
  219. extern __inline struct TR_Project * 
  220. TR_OpenProject (BASE_PAR_DECL struct TR_App *app,struct TagItem *taglist)
  221. {
  222.   BASE_EXT_DECL
  223.   register struct TR_Project *  _res  __asm("d0");
  224.   register struct Library *a6 __asm("a6") = BASE_NAME;
  225.   register struct TR_App *a1 __asm("a1") = app;
  226.   register struct TagItem *a0 __asm("a0") = taglist;
  227.   __asm __volatile ("jsr a6@(-0x1e)"
  228.   : "=r" (_res)
  229.   : "r" (a6), "r" (a1), "r" (a0)
  230.   : "a0","a1","d0","d1", "memory");
  231.   return _res;
  232. }
  233. extern __inline VOID 
  234. TR_ReleaseWindow (BASE_PAR_DECL struct Window *window)
  235. {
  236.   BASE_EXT_DECL
  237.   register struct Library *a6 __asm("a6") = BASE_NAME;
  238.   register struct Window *a0 __asm("a0") = window;
  239.   __asm __volatile ("jsr a6@(-0x9c)"
  240.   : /* no output */
  241.   : "r" (a6), "r" (a0)
  242.   : "a0","a1","d0","d1", "memory");
  243. }
  244. extern __inline VOID 
  245. TR_ReplyMsg (BASE_PAR_DECL struct TR_Message *message)
  246. {
  247.   BASE_EXT_DECL
  248.   register struct Library *a6 __asm("a6") = BASE_NAME;
  249.   register struct TR_Message *a1 __asm("a1") = message;
  250.   __asm __volatile ("jsr a6@(-0x72)"
  251.   : /* no output */
  252.   : "r" (a6), "r" (a1)
  253.   : "a0","a1","d0","d1", "memory");
  254. }
  255. extern __inline VOID 
  256. TR_SetAttribute (BASE_PAR_DECL struct TR_Project *project,ULONG ID,ULONG attribute,ULONG value)
  257. {
  258.   BASE_EXT_DECL
  259.   register struct Library *a6 __asm("a6") = BASE_NAME;
  260.   register struct TR_Project *a0 __asm("a0") = project;
  261.   register ULONG d0 __asm("d0") = ID;
  262.   register ULONG d1 __asm("d1") = attribute;
  263.   register ULONG d2 __asm("d2") = value;
  264.   __asm __volatile ("jsr a6@(-0x3c)"
  265.   : /* no output */
  266.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  267.   : "a0","a1","d0","d1","d2", "memory");
  268. }
  269. extern __inline VOID 
  270. TR_UnlockProject (BASE_PAR_DECL struct TR_Project *project)
  271. {
  272.   BASE_EXT_DECL
  273.   register struct Library *a6 __asm("a6") = BASE_NAME;
  274.   register struct TR_Project *a0 __asm("a0") = project;
  275.   __asm __volatile ("jsr a6@(-0x4e)"
  276.   : /* no output */
  277.   : "r" (a6), "r" (a0)
  278.   : "a0","a1","d0","d1", "memory");
  279. }
  280. extern __inline VOID 
  281. TR_UnlockScreen (BASE_PAR_DECL struct Screen *screen)
  282. {
  283.   BASE_EXT_DECL
  284.   register struct Library *a6 __asm("a6") = BASE_NAME;
  285.   register struct Screen *a0 __asm("a0") = screen;
  286.   __asm __volatile ("jsr a6@(-0x90)"
  287.   : /* no output */
  288.   : "r" (a6), "r" (a0)
  289.   : "a0","a1","d0","d1", "memory");
  290. }
  291. extern __inline ULONG 
  292. TR_Wait (BASE_PAR_DECL struct TR_App *app,ULONG otherbits)
  293. {
  294.   BASE_EXT_DECL
  295.   register ULONG  _res  __asm("d0");
  296.   register struct Library *a6 __asm("a6") = BASE_NAME;
  297.   register struct TR_App *a1 __asm("a1") = app;
  298.   register ULONG d0 __asm("d0") = otherbits;
  299.   __asm __volatile ("jsr a6@(-0x78)"
  300.   : "=r" (_res)
  301.   : "r" (a6), "r" (a1), "r" (d0)
  302.   : "a0","a1","d0","d1", "memory");
  303.   return _res;
  304. }
  305.  
  306. #undef BASE_EXT_DECL
  307. #undef BASE_EXT_DECL0
  308. #undef BASE_PAR_DECL
  309. #undef BASE_PAR_DECL0
  310. #undef BASE_NAME
  311.  
  312. __END_DECLS
  313.  
  314. #endif /* _INLINE_TRITON_H */
  315.